﻿using System.Collections.Generic;
using Microsoft.Xna.Framework;

namespace SpriteAtlasRuntime
{
    public interface ISpriteComponent
    {
        Rectangle Rectangle { set; }
        Vector2 Hotspot { set; }
        bool FlipHorizontal { set; }
        bool FlipVertical { set; }
        float Opacity { set; }
    }

    public interface IModelComponent
    {
        Vector2 Position { get; }
        void SetPosition_X(float x);
        void SetPosition_Y(float y);

        float Speed { get; set; }
        float Acceleration { set; }
        float MaxSpeed { set; }

        void SetVelocity(float velocity, float radianAngle);
        void SetAcceleration(float acceleration, float radianAngle);

        void SetVelocity_X(float x);
        void SetVelocity_Y(float y);
        void SetAcceleration_X(float x);
        void SetAcceleration_Y(float y);

        void SetBoundingRegions(List<float[]> regions);

        void SetFlag(int flag);
        void SetKeyValuePair(string key, float value);
    }
}
